import axios from "axios"; // 导入axios
import storage from "storejs"; // 倒入 storejs -> 这是一个封装好的localStorage

axios.defaults.baseURL = process.env.BASE_API; // 请求的基本路径
axios.defaults.timeout = 15000; // 请求的超时时间

axios.interceptors.request.use(
  config => {
    config.params.appid = process.env.appid; // 每一个请求都要带上appid

    config.params.token = storage.get("token"); // 所有的请求 都要带上token    （注：登录接口其实不用带 但是也不妨碍）
    config.params.lang = storage.get("?lang") ? storage.get("lang") : "zh_CN";

    return config;
  },
  error => Promise.reject(error)
);

axios.interceptors.response.use(
  response => {
    let res = response.data; // axios给我们包装了一层 我们直接拿到剔除包装的原始数据

    if (res.code == 54) location.href = "/login"; // 用户被停权..等等信息

    if (res.code != 0) return Promise.reject(res); // 后台报错

    if (res.data && res.data.sid) {
      storage.set("sid", res.data.sid); // 每一个请求都返回有sid 我们都存下来
    }

    return res;
  },
  error => Promise.reject(error)
);

export default axios;
